Conventional disk drives with magnetic media organize data in concentric tracks. The concept of shingled writing is a form of perpendicular magnetic recording and has been proposed as a way of increasing the areal density of magnetic recording. In shingle-written magnetic recording (SMR) media a region (band) of adjacent tracks are written so as to overlap one or more previously written tracks. Unlike conventional tracks, which can be written in any order, the shingled tracks must be written in sequence. The tracks on an SMR disk surface are organized into a plurality of shingled regions (typically called I-regions) which can be written sequentially from an inner diameter (ID) to an outer diameter (OD) or from OD to ID. The number of tracks shingled together in a region is a key performance parameter of shingled-writing. Once written in shingled structure, an individual track cannot be updated in place, because that would overwrite and, thereby, destroy the data in overlapping tracks. Shingle-written data track regions, therefore, from the user's viewpoint are sometimes thought of as append-only logs. To improve the performance of SMR drives, a portion of the media is allocated to a so-called “exception region” (E-region) which is used as staging area for data which will ultimately be written to an I-region.
Because a portion of the previously written track is over-written during writing of the adjacent track, SMR heads write a wider path than the final actual track width. Therefore, most of the write path is erased when the overlapping track is subsequently written. These unique aspects of SMR have led to the development of special write heads for SMR. One example is an asymmetric write head for shingled magnetic recording described in published US patent application 20110058277 by Anton de la Fuente, et al. (Mar. 10, 2011).
Address indirection in the shingle-written storage device's internal architecture is useful to emulate existing host interfaces at least to some extent and shield the host from the complexities associated with SMR. Conventionally host file systems use logical block addresses (LBAs) in commands to read and write blocks of data without regard for actual locations (physical block address (PBA)) used internally by the storage device. Hard disk drives have had some level of LBA-PBA indirection for decades that, among other things, allows bad sectors on the disk to be remapped to good sectors that have been reserved for this purpose. Address indirection is typically implemented in the controller portion of the drive's architecture. The controller translates the LBAs in host commands to an internal physical address, or something closer to a physical address.
The conventional LBA-PBA mapping for defects does not need to be changed often. In contrast, in an SMR device the physical block address (PBA) of a logical block address (LBA) can change depending on write-history. For example, background processes such as garbage collection move data sectors from one PBA to another but the LBA stays the same. The indirection system for SMR is a natively dynamic system in which the controller translates host address requests to physical locations. In an SMR system, the LBA-PBA mapping changes with every write operation because the system dynamically determines the physical location on the media where the host data for an LBA will be written. The same LBA will be written to a different location the next time the host LBA is updated. The indirection system provides a dynamic translation layer between host LBAs and the current physical locations on the media.
Write caching is a method used to avoid forcing a host computer to wait while a write command is performed on relatively slow non-volatile storage, such as disk drive. One way of freeing the host from waiting is to temporarily place the data for the write command in a volatile RAM cache and send a write confirmation message to the host even though the data has not actually been written yet. In normal operation, the device will eventually write the data from the cache to nonvolatile media. This method has obvious flaws that can lead to data loss under abnormal conditions.
Prior art methods of handling disk drive RAM caches provide solutions to power loss problems. In U.S. Pat. No. 6,378,037 to Hall (Apr. 23, 2002) fail-safe write-caching uses specially arranged portions of a disk surface to store write cache data during drive idle time. In case of a system or power failure before the data is written to its ultimate disk destination, the data can be read from the specially arranged portions to effect recovery without data loss. The design uses a “dual” or “split” actuator embodiment and does not include embodiments for SMR. The time between when the head mechanism has arrived over the correct cylinder (seek) and when the correct location on the track is reached (latency) is used to write portions of the write cache to the disk in special blocks, referred to as Write-Twice Cache Blocks (cacheB). Each cacheB holds: one block of data from the write cache, the data destination address, a time stamp which uniquely identifies the block of data as the latest entry, and a list of which cacheBs contain write cache information which has not yet been written to the respective ultimate destination. The cacheBs can be spaced around the track or instead, multiple cylinders can be used, requiring that short seeks (one or two cylinders) be performed to write some cacheBs.